Name type value storage

ABSTRACT

Name Type Value Storage (“NTV”) provides a very flexible technique for storing data for use in the Internet and in World Wide Web based applications. NTV provides a list of values or names, referred to as triplets, that is used to identify a correspondence. In the triplet, NTV provides both an identifier and a name of a type, where a type can be one of several things, e.g. a type can be an integer, a floating point number, a string, an array of any of those values, or an another NTV object. A third part of the triplet is the actual value itself, which is stored in its native type.

BACKGROUND OF THE INVENTION

1. Technical Field

The invention relates to the storage of information for use in Internetand World Wide Web (“Web”) based applications. More particularly, theinvention relates to storing data in name-type-value triplets.

2. Description of the Prior Art

First generation World Wide Web (“Web”) applications are referenced byCGI (common gateway interface), in which a form is submitted from a Webpage, where the data elements in the form are represented by a name ofan element and a corresponding user entered value, i.e. as a name-valuepair. This value could be a value from a list or a hand typed value.FIG. 1 is a schematic representation of a Web page 10 which provides aform into which data may be entered by a user. Various fields 11-13 areprovided to receives such data, e.g. city, state, and zip code. Theentered data correspond to name-value pairs 11 a-13 a in a name-valuelist. It can be seen that the data may be hand entered, as for city orzip code, or that the user may select the data from a list, as forstate. It is always necessary to use lists of values of this type whenwriting Web applications. Over time it was gradually realized that theuse of lists of values provides a very powerful way to represent databecause one of the typical ways in which data are passed from onecomputer application to another is through a predefined set of values.For example, if it was desired to create a new customer account, itwould be necessary to know that it is required to pass such informationas, e.g. a name, address, city, and state, in a defined list of valueswith known types (see FIG. 1).

One of the limitations of this approach is presented when one wants tochange the application program interface (“API”) for the underlyingapplication program or system platform. Such activity is a verycumbersome process because it is necessary to find every place in adocument or application that the API was called, where the value for thesource API is no longer valid for the target API. That is , it isnecessary to provide an additional value because the target API expectsa different value than that of the source API.

It would be advantageous to provide a technique that allowed a list ofvalues to contain any type of information desired. It would be furtheradvantageous if such list of values could be readily used across varioussystem platforms without regard to an underlying API.

SUMMARY OF THE INVENTION

The invention provides a feature referred to as Name Type Value storage(“NTV”). This feature provides a very flexible technique for storingdata for use, for example in the Internet and in World Wide Web basedapplications. NTV storage is an extension of the familiar and powerfulconcept of storing data in name-value pairs, but with severalsignificant enhancements. For example, one advantage of NTV is thatvalues are stored in their native types, so that they can be manipulatedwithout costly and inconvenient parsing and validation.

The preferred embodiment of NTV provides a list of values or names,referred to as triplets. In each triplet, NTV provides both anidentifier and a name of a type, where a type can be one of severalthings, e.g. a type can be an integer, a floating point number, astring, an array of values, or another NTV object. NTV allows one tonest the various types. A third part of the triplet is the actual valueitself, which is stored in its native type.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram of a Web page showing a list of name-valuepairs;

FIG. 2 is a schematic diagram showing a list of name-type value tripletsaccording to the invention;

FIG. 3 is a schematic diagram showing multiple platforms that areinterconnected over a network according to the invention;

FIG. 4 is a schematic diagram showing an NTV data structure embedded inthe value field of another NTV data structure according to theinvention;

FIG. 5 is a schematic diagram showing iterator construction according tothe invention; and

FIG. 6 is a flow diagram showing, in part, iterator construction, aswell as NTV data structure list processing according to the invention.

DETAILED DESCRIPTION OF THE INVENTION

The invention provides a feature referred to as Name Type Value storage(“NTV”). This feature provides a very flexible technique for storingdata for use, for example in the Internet and in World Wide Web basedapplications. NTV storage is an extension of the familiar and powerfulconcept of storing data in name-value pairs, but with severalsignificant enhancements. For example, one advantage of NTV is thatvalues are stored in their native types, so that they can be manipulatedwithout costly and inconvenient parsing and validation.

NTV provides a list of values or names, referred to as triplets. FIG. 2is a schematic diagram of an NTV triplet 20, showing a name field 21, atype filed 22, and a value field 23. In each triplet, NTV provides bothan identifier and a name of a type, where a type can be one of severalthings, e.g. a type can be an integer, a floating point number, astring, an array of values, or an another NTV object. NTV allows one tonest the various types. A third part of the triplet is the actual valueitself, which is stored in its native type. In FIG. 2, the name field 21describes the triplet as containing an address 24, the type of datawithin the triplet, described by the type field 22, is a string 25, andthe value 26 is contained in the value field.

For purposes of the discussion herein, native type refers to theinternal storage format of the resident platform. An integer such as thenumber five can either be stored the way the computer actuallyrepresents five or in a platform independent fashion, for example, asthe ASCII value five. In many Web applications, ASCII characters aresent from a Web browser to the server because of cross platform issues,e.g. going from a MAC, to a UNIX machine, to a VMS machine. In thiscase, the Web browser represents the characters as ASCII because ASCIIprovides essentially the same effect as if the various systems were thesame platform.

However, representing such characters internally as ASCII results in aperformance penalty because it becomes necessary to convert from thestring representation of the character to the internal representation ofthe character if such operations as computations and comparisons are tobe performed. One of the improvements provided by NTV is the ability tostore characters in the value portion of the triplet, for example,internally as the characters' internal value so that the bestperformance is available. As discussed above, the triplet includes name,type, and value information.

There are certain advantages that are provided by representing the datain this way. One such advantage is that it is possible to represent thedata on any platform because the “type” of data is identified to thetarget platform by the triplet. This allows the use of multipleplatforms and any programming language, e.g. a Java representation, aC++ representation, or a Java Script representation. It is thereforepossible to send a group of data, e.g. an object referred to as“customer” which represents an individual and all information related tothat individual, as a list of triplets (i.e. an NTV data structure) andto manipulate that data in a C++ program which is on a server. UsingNTV, it is thereafter possible to change that data, e.g. send the datato a Java application where one can, for example change the values,write the data into a report, or place the data into a JavaScriptapplication where one can perform some manipulation on the data. Thedata are the same representation in all ways on all three platforms and,if it is desired to add a fourth platform or language, such as a Perl orPascal, the data are common among each platform, such that thedevelopment process is sped up.

Another feature of NTV is that it is a self describing format. Thus, oneNTV data structure can serialize itself into a string (e.g. in ASCIIformat), which allows one to save it to a file or send it across a wire,where it may be reconstituted at the other end. The data has one formatwhen it is at a first location, but it can be turned into a string whichthen can be transmitted, and it can reassemble itself at the other endin the proper format, i.e. exactly the same format and the samestructure. Therefore, if one decides to add a new value into a datastructure that is being sent back and forth between various platforms,it is not necessary to change the data structure itself. That is, onedoes not have to add a field to a header file or recompile all of thecode. Rather, one can add the new value and the new value passes throughto the destination platform.

For example, FIG. 3 provides a schematic diagram showing multipleplatforms 30, 31 that are interconnected over a network 32. An NTV datastructure 33 stored in memory 50 includes one or more triplets, one ofwhich has a value containing data “abc” 34 in a native format for asource platform 30. A module 38 is provided at the sourceplatform(platform 1) 30 that serializes the triplet and sends thetriplet over the network. 32, in a serialized format 35. A module 39 isprovided at a second platform (platform 2) 31. That receives theserialized data and converts the data back to an NTV data structure 36that includes the same triplet, but where the type of data indicated bythe triplet was used to convert the serialized form of the data to avalue “xyz” in a native format for the recipient platform 31. The nativetriplet is then stored in memory 51 at the second platform.

Base data types supported by the presently preferred embodiment of NTVare shown in Table 1 below. It should be appreciated that the inventionis readily applicable to other base data types through the exercise ofordinary skill in the art.

TABLE 1 NTV Base Data Types Native Type C++ Java NTV Int (4 byteintegers) int NTV Double (Double precision double floating point) NTVString (RWCString) String NTV Boolean (int) boolean NTV DateTime(RWDBDateTime) Date

Some other advantages of NTV include:

NTV lists can be embedded within each other, allowing data structures ofunlimited complexity to be constructed (see FIG. 4, which shows an NTVdata structure 41 embedded in the value field of another NTV datastructure 40).

Arrays of any supported type may be stored as values in NTV lists,including arrays of NTV lists.

NTV lists and the array value types support several iterator interfaces.

NTV lists can be serialized and deserialized simply, allowing any datastructure to be stored in a file and reconstituted later, or for datastructures to be transmitted between application components withoutspecialized code.

NTV lists have a uniform structure, such that reflecting data structuresinto JavaScript, or exchanging data structures between C++ and Java doesnot require header files, class loaders, or object classes.

Using NTV

Most operations that are performed on NTV lists involve the setting andgetting of values. The application program interface (API) functionsused to do this are specialized to the type of data being handled, sothat data may be passed in and out of an NTV list as the appropriatenative type.

Set Functions. The ACNTVList methods used to set a value into an NTVlist are typically as follows:

ACNTVList::set<TypeSpecifier>(String<name>, NativeType<value>[,ACNTVError<error object>]);

The parameters to these functions are the name with which the insertedvalue should be associated, the value to insert (as the correct nativetype), and an optional error object that is populated with a returncondition code, if appropriate.

Dot Notation. NTV permits a name that is located several levels into theNTV list hierarchy to be specified by using dot notation. For example,if an NTV list contains another NTV list having the name “a” which, inturn, contains an integer having the name “b,” then the value of “b”could be changed to zero by calling setInt(“a.b”, 0) on the parent NTVlist. If the NTV lists that are required to store a value with a dotnotated name do not exist, they are created automatically. In otherwords, if a call is made to setInt(“a.b”, 0) on an empty NTV list, theNTV list having the name “a” is first inserted into the parent NTV list,and the integer having the name “b” is then inserted. This is a powerfulfeature, but it does incur a performance penalty, e.g. if a nested NTVlist is accessed repeatedly, it is preferred to get a pointer directlyto the embedded list.

Restrictions on Names. Note that providing the dot notation featuremakes it impossible to embed a dot in a name in an NTV list. If it isdesired to use dot notation to access an NTV data structure fromJavaScript, it is necessary that all inserted names are valid JavaScriptidentifiers. Memory Management. All values except Void types are copiedinto the NTVList. This feature of NTV has several implications:

First, it is necessary to provide a function that frees the memoryoccupied by the value passed in because the NTV list does not performthis function. On the other hand, it is not necessary that the NTV listmodify any variable used to set a value.

Second, if an NTV list is inserted into another NTV list, then theentire inserted list is copied. This can be an expensive operation, soit is often better, if possible, to build the nested list in place. Thisinvolves inserting a new (empty) list, calling getNTVList to retrieve apointer to the list in place, and using that pointer to create thelist's contents. Note that the same procedure applies for array types.

If a value of any type exists in the NTV list before the function iscalled, it is replaced with the new name-type-value triplet. In general,any memory associated with the replaced value is freed. The exception tothis rule is Void types in C++. Note that while the Void objects in aVoid array are not freed, the memory occupied by the array itself isfreed.

DateTimes and Booleans. Unlike other types, DateTimes can be insertedinto NTVs using a number of different APIs. A first set of APIs allowvalues to be inserted using a native DateTime representation. Anotherset of APIs allow DateTimes to be inserted using a string and acorresponding format that describes the value. This format isconstructed using various characters as described in Table 3.

Regardless of how DateTimes are set, they are stored internally innative format. If the values are inserted as strings, the resultingnative value is created using the local time zone of the machine onwhich the application is running. This conversion takes into account alltime zone offset information-including. Daylight Savings Time.

Boolean operators also provide an interface that is somewhat differentthan most types. In addition to the normal ability to insert valuesusing a native type, Boolean operators may also be inserted using caseinsensitive versions of the strings “true” and “false.” Regardless ofhow Boolean operators are inserted, they are stored internally (andtherefore extracted) in native format.

Classes for NTV data structures are discussed below. C++ Prototypes.Table 2 below lists set function prototypes.

TABLE 2 Set Function Prototypes Set Function Prototypes void setInt(const RWCString& rrwcsName, const int iValue, ACNTVError& errval =ACNTVError()); void setDbl (const RWCString& rrwcsName, const doubledValue, ACNTVError& errval = ACNTVError()); void setStr (constRWCString& rrwcsName, const RWCString& rrwcsValue, ACNTVError& errval =ACNTVError()); void setBool(const RWCString& rrwcsName, const intiValue, ACNTVError& errval = ACNTVError()); void setBool(constRWCString& rrwcsName, const RWCString& rrwcsValue, ACNTVError& errval =ACNTVError()); void setBool(const RWCString& rrwcsName, const char*pszValue, ACNTVError& errval = ACNTVError()); void setDateTime(constRWCString& rrwcsName, const RWDate& rrwdtValue,ACNTVError& errval =ACNTVError()); void setDateTime(const RWCString& rrwcsName, constRWTime& rrwdtValue,ACNTVError& errval = ACNTVError()); voidsetDateTime(const RWCString& rrwcsName, const RWDBDateTime& rrwdtValue,ACNTVError& errval = ACNTVError()); void setDateTime(const RWCString&rrwcsName, const char* pszValue, const char* pszFormat =DATETIME_SERIALIZE_FMT, ACNTVError& errval = ACNTVError()); voidsetDateTime(const RWCString& rrwcsName, const RWCString& rrwcsValue,const RWCString& rrwcsFormat = DATETIME_SERIALIZE_FMT,ACNTVError& errval= ACNTVError()); void setVoid (const RWCString& rrwcsName, VoidPtrpValue, ACNTVError& errval = ACNTVError()); void setAny (constRWCString& rrwcsName, const AnyObject*& pValue, ACNTVError& errval =ACNTVError()); void setNTVList (const RWCString& rrwcsName, constACNTVList*& pntvValue, ACNTVError& errval = ACNTVError()); voidsetIntArr(const RWCString& rrwcsName, const ACNTVIntArr& array,ACNTVError& errval = ACNTVError()); void setDblArr(const RWCString&rrwcsName, const ACNTVDblArr& array, ACNTVError& errval = ACNTVError());void setStrArr(const RWCString& rrwcsName, const ACNTVStrArr& array,ACNTVError& errval = ACNTVError()); void setVoidArr(const RWCString&rrwcsName, const ACNTVVoidArr& array, ACNTVError& errval =ACNTVError()); void setAnyArr(const RWCString& rrwcsName, constACNTVAnyArr& array, ACNTVError& errval = ACNTVError()); voidsetNTVListArr(const RWCString& rrwcsName, const ACNTVListArr& array,ACNTVError& errval = ACNTVError());

Get Functions

NTVList methods used to get a value from an NTV list are typically asfollows:

<NativeType>ACNTVList::get<Typespecifier>(String<name>,NativeType<default>[, ACNTVError<error object>]);

The parameters to these functions are the name associated with thedesired value, an optional default value (in the correct native type),and an optional error object that is populated with a return conditioncode, if appropriate.

There is a special function in this group referred to as thegetAsString( ) function, which has the same signature as getStr( ), butwhich converts the value to a string before returning it. This methodworks for all types other than arrays. For integers, doubles, andstrings, the format of the resulting string value should be evident.Formats for other types are described in Table 3 below.

TABLE 3 Type Formats Native Value String Format NTV Boolean true orfalse NTV DateTime An ISO DateTime string in the format YYYY-MM-DDhh:mm:ss+/−hhmm

Default Values. The default value is returned unchanged if no value ofthe correct type is found in the list with the name supplied. If nodefault value is provided, these functions return an empty string, zero,or null, as appropriate to the type returned. Note that the getfunctions for array types do not support default values.

Special Considerations. The same dot notation feature and memorymanagement considerations that apply to set methods also apply to getmethods. In addition, it is important to note that where these methodsreturn pointers, they point to the actual objects in the NTV list. Thismemory should not be freed by the caller.

C++ Prototypes. Table 4 below lists get function prototypes.

TABLE 4 Get Function Prototypes Get Function Prototypes RWCStringgetAsString(const RWCString& rrwcsName, const RWCString& prwcsDefault =“”, ACNTVError& errval = ACNTVError()) const; int getInt(constRWCString& rrwcsName, const int iDefault = 0, ACNTVError& errval =ACNTVError()) const; double getDbl(const RWCString& rrwcsName, constdouble dDefault = 0.0, ACNTVError& errval = ACNTVError()) const;RWCString getStr(const RWCString& rrwcsName, const RWCString&prwcsDefault = “”, ACNTVError& errval = ACNTVError()) const; intgetBool(const RWCString& rrwcsName, const int iDefault =FALSE,ACNTVError& errval = ACNTVError()) const; RWDate getDateTime(constRWCString& rrwdName, const RWDate& prwdDefault, ACNTVError& errval =ACNTVError()) const; RWTime getDateTime(const RWCString& rrwdName, constRWTime& prwtDefault, ACNTVError& errval = ACNTVError()) const;RWDBDateTimegetDateTime(const RWCString& rrwdName, constRWDBDateTime&prwdtDefault= RWDBDateTime(ACValidate::minAllowedDate),ACNTVError& errval = ACNTVError()) const; VoidPtr getVoid(constRWCString& rrwcsName, ACNTVError& errval = ACNTVError()) const;AnyObject *getAny(const RWCString& rrwcsName, ACNTVError& errval =ACNTVError()) const; ACNTVList *getNTVList(const RWCString&rrwcsName,ACNTVError& errval = ACNTVError()) const; ACNTVIntArr*getIntArr(const RWCString& rrwcsName,ACNTVError& errval =ACNTVError()); ACNTVStrArr *getStrArr(const RWCString&rrwcsName,ACNTVError& errval = ACNTVError()); ACNTVDblArr*getDblArr(const RWCString& rrwcsName, ACNTVError& errval =ACNTVError()); ACNTVBoolArr *getBoolArr(const RWCString& rrwcsName,ACNTVError& errval = ACNTVError()); ACNTVDateTimeArr*getDateTimeArr(const RWCString& rrwcsName, ACNTVError& errval =ACNTVError()); ACNTVVoidArr *getVoidArr(const RWCString& rrwcsName,ACNTVError& errval = ACNTVError()); ACNTVAnyArr *getAnyArr(constRWCString& rrwcsName, ACNTVError& errval = ACNTVError()); ACNTVListArr*getNTVListArr(const RWCString& rrwcsName, ACNTVError& errval =ACNTVError());

Arrays

For each base type (Int, Double, String, Void, Any, and NTV list), thereis a corresponding array type. These array types are not actually nativearrays, but instead are objects which handle memory management andwhich, in the preferred embodiment of the invention, support a subset ofthe Java Vector API.

Array Object Methods. The interface for NTV array objects is based onthe Java API class java.util.Vector. These methods provide everythingrequired to manipulate an array, while concealing the underlyingimplementation. Note that some of the methods listed below require theability to test for value equality, and are not available for arrays ofVoid or NTV lists. These methods are marked in Table 5 with an *.

The methods executed on Int, Double, and String arrays expect and returnvalues/references, while the methods executed on Void, Any, and NTV listarrays are concerned with pointers, as with the get/set methods onACNTVList. Also, as with ACNTVList, values are always copied on the wayin, but never on the way out.

Detailed information on how these methods work follows the documentationfor java.util.Vector or netscape.util.Vector. Note, however that forboth of these classes, the lastIndexOf method is documented incorrectly:the search begins not at index, but at index −1. Also, the lastIndexOfmethod is implemented using value equality, rather than object identity,the way netscape.util.Vector does it, rather than the way thatjava.util.Vector does.

C++ Prototypes. Table 5 below lists array object methods.

TABLE 5 Array Object Method Array Object Methods *void addElement(const<Base Type> value); *int contains(const <Base Type> value) const; *<BaseType> elementAt(int index, ACNTVError& errval = ACNTVError()) const;*int indexOf(const <Base Type> value, int index = 0) const; *voidinsertElementAt(const <Base Type> value, int index, ACNTVError& errval =ACNTVError()); *int isEmpty () const; *int lastIndexOf (const <BaseType> value, int index = −1) const; *void removeAllElements (); *intremoveElement (const <Base Type> value); *void removeElementAt (intindex, ACNTVError& errval = ACNTVError()); *void setElementAt (const<Base Type> value, int index, ACNTVError& errval = ACNTVError()); *intsize() const;

Iterators

There are currently two iterators provided by NTV, both of which supportthe same interface:

ACNTVListiterator is a fast iterator that does not provide a guaranteeabout order.

ACNTVListInsertionIterator is a slightly slower iterator that produceselements in the order in which they were inserted in the list.

Constructors

A listing that includes a variable index, a constructor index,variables, and constructors for the presently preferred embodiment ofthe invention is attached hereto as Appendix “A, ”. A listing thatincludes a variable index, a constructor index, variables, andconstructors for the presently preferred embodiment of the invention ispresented infra schematic diagram showing iterator constructionaccording to the invention, while FIG. 6 is a flow diagram showing, inpart, iterator construction, as well as NTV data structure listprocessing according to the invention. The iterator classes each have asingle constructor 52 that takes a pointer to an NTV list 54 as aparameter. As with most iterator classes, iterators, the position of theiterator 53 is undefined immediately following its construction.

The constructors are as shown in Table 6 below.

TABLE 6 Constructors Iterator Constructors ACNTVListIterator(constACNTVList* pntv); ACNTVListInsertionIterator(const ACNTVList* pntv);

Stepping Through the List. After constructing an iterator (100), thesystem steps through the list (110) by calling the RWCString* next( )method. This method returns the name of the item in the list (120). Whennext( ) returns null, the end of the list has been reached. The name ofthe current item may also be retrieved by calling the getName( ) method.

Determining the Type of an Element (130). To operate on the data in thelist, the system calls the int getType( ) method and compares the resultto the constants shown in Table 7 below, which are available as a resultof including acntvlist.h.

TABLE 7 NTV Data Type IDs NTV Data Type IDs ACNTVIntClassIDACNTVDblClassID ACNTVStrClassID ACNTVBoolClassID ACNTVDateTimeClassIDACNTVVoidClassID ACNTVAnyClassID ACNTVListClassID ACNTVIntArrClassIDACNTVDblArrClassID ACNTVStrArrClassID ACNTVBoolArrClassIDACNTVDateTimeArrClassID ACNTVVoidArrClassID ACNTVAnyArrClassIDACNTVListArrClassID

Getting the Element Data

After determining the type, one can retrieve the data (140) using getmethods that function in manner similar to the corresponding methods onACNTVList, except that they do not take any parameters because the nameis already known and errors and misses should never happen.

C++ Prototypes. Table 8 below lists iterator get methods.

TABLE 8 Iterator Get Methods Iterator Get Methods RWCString getAsString(); int getInt( ); double getDbl( ); RWCString getStr( ); int getBool( );RWDBDateTime getDateTime( ); VoidPtr getVoid( ); AnyObject* getAny( );ACNTVList* getNTVList( ); ACNTVIntArr* getIntArr( ); ACNTVDblArr*getDblArr( ); ACNTVStrArr* getStrArr( ); ACNTVBOOlArr* getBoolArr( );ACNTVDateTimeArr* getDateTimeArr( ); ACNTVVoidArr* getVoidArr( );ACNTVAnyArr* getAnyArr( ); ACNTVListArr* getNtvListArr( );

The iterators also support one other get method, i.e. ACNTVTriplet*getTriplet( ). This method returns the triplet used internally to storethe data. One should avoid using this method if at all possible becauseit creates a dependency on the internal representation of NTV and israrely necessary. Preferably, one can make full use of NTV withoutmanipulating triplets directly.

Other Methods. The iterator classes also support a reset( ) method whichrestores the state that the iterator had immediately after construction.

Special Considerations. Note that the behavior of the iterator classesis undefined if the underlying list is modified after the iterator isconstructed. of the inserted object are copied. This can be acomputationally expensive operation. Accordingly, it is better to insertthe object first, then fill the NTV list with data. In this case, theempty object insert is copied. To add data to the empty object insert,the appropriate get function is called to get a pointer to the new copyin the list. If data are added to the original object inserted, the datado not affect the contents of the parent list.

Support for “Any” Objects

There is a base class or interface that allows new classes to be createdthat are not in any way based on NTV lists, but that implement a coreset of functions required to allow instances to be used as data valuesin NTV lists. In the current implementation, ACNTVAny should beimplemented as an interface in Java.

Other Embodiments

The following provides a list of features that may be employed in otherembodiments of the invention:

Type Methods on Iterator Classes. NTV provides type-specific methodssuch as isStr( ), isNTVList( ), and general type methods such as isArroor isNumber( ) which make the iterators easier to use.

getAsLocalizedString Methods. This method allows values to be retrievedas strings, as with getAsString, taking into account, e.g.locale-specific number and date formatting. This method is availablefrom both NTV lists and iterators.

Internal Reference Counting. This feature avoids unnecessary internalcopying that affects performance.

Case Insensitive Searching. This feature allows one to look a name upwithout paying attention to case.

Support Multi-Byte Strings. RWCString can be replaced with a new classthat supports multi-byte.

Use Hash tables. NTV lists currently use binary trees.

Overload Functions to take char*. This feature alleviates the need forso many casts to avoid compiler warnings, and prevents unnecessarycalling of RWCString constructors.

Constructor and Method Prototypes

Listed herein are the Constructor and Method Prototypes utilized in thepreferred embodiment of the present invention. Table 9 defines variabletypes. Table 10 enumerates constructors. Table 11 presents a list ofmethods. Table 12 lists additional variable types. Table 13 lists theconstructors methods and Table 14 presents the method prototypes.

TABLE 9 Variable Index list listNames ACNTVAnyArrClassID ACNTVAnyClassIDACNTVDblArrClassID ACNTVDblClassID ACNTVIntArrClassID ACNTVIntClassIDACNTVListArrClassID ACNTVListClassID ACNTVNtvlClassIDACNTVRealNTVListClassID ACNTVStrArrClassID ACNTVStrClassIDACNTVTripletClassID ACNTVVoidArrClassID ACNTVVoidClassID

TABLE 10 Constructor Index ACNTVList( ) Constructs an empty ACNTVListobject ACNTVList(ACNTVList) Constructs an ACNTVList object based onanother ACNTVList object

TABLE 11 Method Index ACNTVgetAnyArr Returns from this ACNTVList an(String) ACNTVAnyArr named by argument name. ACNTVgetAnyArr Returns fromthis ACNTVList an (String, ACNTVError) ACNTVAnyArr named by argumentname. ACNTVgetVoidArr Returns from this ACNTVList an (String)ACNTVVoidArr named by argument name. ACNTVgetVoidArr Returns from thisACNTVList an (String, ACNTVError) ACNTVVoidArr named by argument name.CastToNTVList () Safe downcast from ACNTVTriplet to ACNTVList Clear()Removes all elements from this ACNTVList. clear(ACNTVError) Removes allelements from this ACNTVList. cloneNTVList Returns a clone of thisACNTVList (ACNTVError) contains Test whether an existing ACNTVTriplet(ACNTVTriplet) element is contained in this ACNTVList contains(String)Test whether an existing ACNTVTriplet element is contained in thisACNTVList copy(ACNTVList, Recursively copies the ACNTVList ACNTVError)represented by the source argument to this ACNTVList.copyElement(String, Copies the element named szName from src ACNTVList)and inserts into this using szName as name copyElement(String, Copiesthe element named szName from src ACNTVList, and inserts into this usingszName as name ACNTVError) copyElement(String, Copies the element namedszSrcName ACNTVList, String) from src and inserts into this using szNameas name copyElement(String, Copies the element named szSrcNameACNTVList, String, from src and inserts into this using ACNTVError)szName as name destroy(String, Removes the ACNTVTriplet named by theACNTVError) name argument For ACNTVList internal use onlydestrovTriplet(String, Removes the ACNTVTriplet named by the ACNTVError)name argument doprettyprint Produces a human readable form of this(StringBuffer, ACNTVList and return it in the argument String, int, int)result. doprettyprint Produces a human readable form of this(StringBuffer, String, ACNTVList and return it in the argument int, int,ACNTVError) result. doserialize Serializes this ACNTVList to a string.(StringBuffer, int, ACNTVError) entries() Returns the number of elementsin the ACNTVList get(String) Returns from this ACNTVList an ACNTVTripletnamed by argument name. getString, Returns from this ACNTVList anACNTVError) ACNTVTriplet named by argument name. getAny(String) Returnsfrom this ACNTVList an ACNTVAny object named by argument name.getAny(String, Returns from this ACNTVList an ACNTVError) ACNTVAnyobject named by argument name. getAsString(String) Returns from thisACNTVList a String representation of argument name. getAsString(String,Returns from this ACNTVList a String String) representation of argumentname. getAsString Returns from this ACNTVList a String (String, String,representation of argument name. ACNTVError) getDbl(String) Returns fromthis ACNTVList a double named by argument name. getDbl(String, double)Returns from this ACNTVList a double named by argument name.getDbl(String, Returns from this ACNTVList a double double, ACNTVError)named by argument name. getDblArr(String) Returns from this ACNTVList anACNTVDblArr named by argument name. getDblArr(String, Returns from thisACNTVList an ACNTVError) ACNTVDblArr named by argument name.getInt(String) Returns from this ACNTVList an int named by argumentname. getInt(String, int) Returns from this ACNTVList an int named byargument name. getInt(String, int, Returns from this ACNTVList an intnamed ACNTVError) by argument name. getIntArr(String) Returns from thisACNTVList an ACNTVIntArr named by argument name. getIntArr(String,Returns from this ACNTVList an ACNTVError) ACNTVIntArr named by argumentname. getLastName(String, For internal use. ACNTVError)getNTVList(String) Returns from this ACNTVList an ACNTVList named byargument name. getNTVList(String, Returns from this ACNTVList anACNTVError) ACNTVList object named by argument name.getNTVListArr(String) Returns from this ACNTVList an ACNTVListArr namedby argument name. getNTVListArr(String, Returns from this ACNTVList anACNTVError) ACNTVListArr named by argument name. getStr(String) Returnsfrom this ACNTVList a String named by argument name. getStr(String,Returns from this ACNTVList a String String) named by argument name.getStr(String, String, Returns from this ACNTVList a String ACNTVError)named by argument name. getStrArr(String) Returns from this ACNTVList anACNTVStrArr named by argument name. getStrArr(String, Returns from thisACNTVList an ACNTVError) ACNTVStrArr named by argument name.getTriplet(String) Returns from this ACNTVList an ACNTVTriplet named byargument name. getTriplet(String, Returns from this ACNTVList anACNTVError) ACNTVTriplet named by argument name. getVoid(String) Returnsfrom this ACNTVList an opaque object named by argument name.getVoid(String, Returns from this ACNTVList an opaque ACNTVError) objectnamed by argument name. inherit(ACNTVList) Recursively inherits elementsfrom the ACNTVList represented by the source argument into thisACNTVList. inherit(ACNTVList, Recursively inherits elements from theACNTVError) ACNTVList represented by the source argument into thisACNTVList. insert(ACNTVTriplet, Inserts an ACNTVTriplet into theACNTVError) ACNTVList. merge(ACNTVList) merge(ACNTVList, ACNTVError)prettyprint Produces a human readable form of this (StringBuffer,String, ACNTVList and returns it in the argument int, int, ACNTVError)result. prettyprintToDebug() Produces human readable form of thisACNTVList and output it to the debug output stream using ArchDebug sDEBUG- APPL mode. printArchDebug(int) Produces human readable form ofthis ACNTVList and output it to the ArchDebug output stream using thegiven mode remAny(String) Removes and returns from this ACNTVList anACNTVAnyObject named by argument name. remAny(String, Removes andreturns from this ACNTVList ACNTVError) an ACNTVAnyObject named byargument name. remAnvArr(String) Removes and returns from this ACNTVListan ACNTVAnyArr named by argument name. remAnvArr(String, Removes andreturns from this ACNTVList ACNTVError) an ACNTVAnyArr named by argumentname. remDbl(String) Removes and returns from this ACNTVList a doubleint named by argument name. remDbl(String, double) Removes and returnsfrom this ACNTVList a double named by argument name. remDbl(String,double, Removes and returns from this ACNTVList ACNTVError) a doublenamed by argument name. remDblArr(String) Removes and returns from thisACNTVList an ACNTVDblArr named by argument name. remDblArr(String,Removes and returns from this ACNTVList ACNTVError) an ACNTVDblArr namedby argument name. remInt(String) Removes and returns from this ACNTVListan int named by argument name. remInt(String, int) Removes and returnsfrom this ACNTVList an int named by argument name. remInt(String, int,Removes and returns from this ACNTVList ACNTVError) an int named byargument name. remIntArr(String) Removes and returns from this ACNTVLisan ACNTVIntArr named by argument name. remIntArr(String, Removes andreturns from this ACNTVList ACNTVError) an ACNTVIntArr named by argumentname. remNTVList(String) Removes and returns from this ACNTVList anACNTVList named by argument name. remNTVList(String, Removes and returnsfrom this ACNTVList ACNTVError) an ACNTVList named by argument name.remNTVListArr(String) Removes and returns from this ACNTVList anACNTVListArr named by argument name. remNTVListArr(String. Removes andreturns from this ACNTVList ACNTVError) an ACNTVListArr named byargument name. remove(String) Removes returns from this ACNTVList anACNTVTriplet named by argument name. remove(String, Removes returns fromthis ACNTVList an ACNTVError) ACNTVTriplet named by argument name.remStr(String) Removes and returns from this ACNTVList a String named byargument name. remstr(String, String) Removes and returns from thisACNTVList a String named by argument name. remstr(String, String,Removes and returns from this ACNTVList ACNTVError) a String named byargument name. remStrArr(String) Removes and returns from this ACNTVListanACNTVStrArr named by argument name. remstrArr(String, Removes andreturns from this ACNTVList ACNTVError) an ACNTVStrArr named by argumentname. remTriplet(String) Removes and returns from this ACNTVList anACNTVTriplet named by argument name. remTriplet(String, Removes andreturns from this ACNTVList ACNTVError) an ACNTVTriplet named byargument name. remVoid(String) Removes and returns from this ACNTVListan opaque Object named by argument name. remyoid(String, Removes andreturns from this ACNTVError) ACNTVListan opaque Object named byargument name. remVoidArr(String) Removes and returns from thisACNTVList an ACNTVVoidArr named by argument name. remVoidArr(String,Removes and returns from this ACNTVList ACNTVError) an ACNTVVoidArrnamed by argument name. serialize Serializes this ACNTVList to a string.(StringBuffer, int, ACNTVError) set(ACNTVTriplet) Places element intothis ACNTVList. Set(ACNTVTriplet, Places element into this ACNTVList.ACNTVError) setAny(String, Creates a new ACNTVAny element fromACNTVAnyObject) name and value, and places it on this ACNTVList.setAny(String, Creates a new ACNTVAny element from ACNTVAnyObject, nameand value, and places it on this ACNTVError) ACNTVList. setAnyArrCreates a new ACNTVAnyArr element (String, from name and value, andplaces it on this ACNTVAnyArr) ACNTVList. setAnvArr(String, Creates anew ACNTVAnyArr element ACNTVAnyArr, from name and value, and places iton this ACNTVError) ACNTVList. setAnyArr(String, Creates a newACNTVAnyArr element ACNTVAnyObject from name and value, and places it onthis [], int) ACNTVList. setanyArr(String, Creates a new ACNTVAnyArrelement ACNTVAnyObject[], from name and value, and places it on thisint, ACNTVError) ACNTVList. setDbl(String, double) Creates a new doubleelement from name and value, and places it on this ACNTVList.setDbl(String, double, Creates a new double element from nameACNTVError) and value, and places it on this ACNTVList.setDblArr(String, Creates a new ACNTVDblArr element ACNTVDblArr) fromname and value, and places it on this ACNTVList. SetDblArr(String,Creates a new ACNTVDblArr element ACNTVDblArr, from name and value, andplaces it on this ACNTVError) ACNTVList. setDblArr(String, Creates a newACNTVDblArr element double[], int) from name and value, and places it onthis ACNTVList. setDblArr(String, Creates a new ACNTVDblArr elementdouble[], int, from name and value, and places it on this ACNTVError)ACNTVList. setInt(String, int) Creates a new int element from name andvalue, and places it on this ACNTVList. setInt(String, int, Creates anew int element from name and ACNTVError) value, and places it on thisACNTVList. setIntArr(String, Creates a new ACNTVIntArr element fromACNTVIntArr) name and value, and places it on this ACNTVList.setIntArr(String, Creates a new ACNTVIntArr element from ACNTVIntArr,name and value, and places it on this ACNTVError) ACNTVList.setIntArr(String, Creates a new ACNTVIntArr element from int[], int)name and value, and places it on this ACNTVList. setIntArr(String,Creates a new ACNTVIntArr element from int[], int, name and value, andplaces it on this ACNTVError) ACNTVList. setNextToLast(String, Forinternal use. ACNTVError) setNTVList(String, Creates a new ACNTVListelement from ACNTVList) name and value, and places it on this ACNTVList.setNTVList(String, Creates a new ACNTVList element from ACNTVList, nameand value, and places it on this ACNTVError) ACNTVList.setNTVListArr(String) Adds an empty NTVList array to the list with thegiven name setNTVListArr(String, Adds an empty NTVList array to the listACNTVError) with the given name setNTVListArr(String, Creates a newACNTVListArr element ACNTVList[], int) from name and value, and placesit on this ACNTVList. setNTVListArr(String, Creates a new ACNTVListArrelement ACNTVList[}, int, from name and value, and places it on thisACNTVError) ACNTVList. setNTVListArr(String, Creates a new ACNTVListArrelement ACNTVListArr) from name and value, and places it on thisACNTVList. setNTVListArr(String, Creates a new ACNTVListArr elementACNTVListArr, from name and value, and places it on this ACNTVError)ACNTVList. setNTVListRef(String, Inserts the given new ACNTVList andACNTVList) inserts it into this ACNTVList with the given name - no copyis made (as opposed to setNTVList(). setNTVListRef(String, Inserts thegiven new ACNTVList and ACNTVList, inserts it into this ACNTVList withthe ACNTVError) given name - no copy is made (as opposed to setNTVList()setStr(String, String) Creates a new String element from name and value,and places it on this ACNTVList. setStr(String, String, Creates a newString element from name ACNTVError) and value, and places it on thisACNTVList. setStrArr(String, Creates a new ACNTVStrArr element fromACNTVStrArr) name and value, and places it on this ACNTVList.setStrArr(String, Creates a new ACNTVStrArr element from ACNTVStrArr,name and value, and places it on this ACNTVError) ACNTVList.setStrArr(String, Creates a new ACNTVStrArr element from String[], int)name and value, and places it on this ACNTVList. setStrArr(String,Creates a new ACNTVStrArr element from String[], int, name and value,and places it on this ACNTVError) ACNTVList. setTriplet Places anACNTVTriplet named by (ACNTVTriplet) argument name into this ACNTVList.setTriplet Places an ACNTVTriplet named by (ACNTVTriplet, argument nameinto this ACNTVList. ACNTVError) setTriplet(String, Searches for anelement named argument ACNTVTriplet) name in this ACNTVList.setTriplet(String, Searches for an element named argument ACNTVTriplet,name in this ACNTVList. ACNTVError) setVoid(String, Object) Creates anew opaque Object element from name and value, and places it on thisACNTVList. setVoid(String, Object, Creates a new opaque Object elementACNTVError) from name and value, and places it on this ACNTVList.

TABLE 12 Variables ACNTVTripletClassID public final static intACNTVTripletClass- ID ACNTVIntClassID public final static intACNTVIntClassID ACNTVStrClassID public final static int ACNTVStrClassIDACNTVVoidClassID public final static int ACNTVVoidClassIDACNTVAnyClassID public final static int ACNTVAnyClassIDACNTVRealNTVListClassID public final static int ACNTVRealNTV-ListClassID ACNTVNtvlClassID public final static int ACNTVNtv1ClassIDACNTVListClassID public final static int ACNTVListclassIDACNTVDblClassID public final static int ACNTVDblClassIDACNTVIntArrClassID public final static int ACNTVIntArrClass- IDACNTVStrArrClassID public final static int ACNTVStrArrClass- IDACNTVVoidArrClassID public final static int ACNTVVoidArr- ClassIDACNTVAnyArrClassID public final static int ACNTVAnyArr- ClassIDACNTVListArrClassID public final static int ACNTVListArr- ClassIDACNTVDblArrClassID public final static int ACNTVDblArr- ClassID_listprotected Hashtable list_listNames protected Vector listNames

TABLE 13 CONSTRUCTORS ACNTVList public ACNTVList( ) Constructs an emptyACNTVList object ACNTVList public ACNTVList(ACN- Constructs an ACNTVListTVList source) object based on another ACNTVList object @param sourcethe source ACNTVList object

TABLE 14 METHODS cloneNTVList public ACNTVList Returns a clone of thisACNTVlist cloneNTVList(ACNTVError errval) Parameters: errval - On exit,contains status information Returns; A copy of the object destroyprotectced void destroy(String Removes the ACNTVTriplet name, ACNTVErrorerrval) named by the name argument For ACNTVList internal use only@param name name of the ACNTVTriplet to remove @param errval On exit,contains status information destroyTriplet public void destroyTriplet(String Removes the ACNTVTriplet name, ACNTError errval) named bythe name argument @param name name of the ACNTVTriplet to remove @paramerrval On exit, contains status information insert public void insert(ACNTVTriplet Inserts an ACNTVTriplet into the element,ACNTVErrorerrrval) ACNTVList. A pre-existing triplet with the same name as elementwill be overwritten with element s value @param element ACNTVTriplet toinsert @param errval On exit, contains status information entries publicint entries () Returns the number of etements in the ACNTVList @returnThe number of elements in the ACNTVList copy public void copy(ACNTVLiStRecursively copies the source, ACNTVError errval) ACNTVList representedby the source argument to this ACNTVList. Elements in this list with thesame name as elements in the source list are overwritten with valuesfrom the source list. @param source ACNTVList to copy from @param errvalOn exit, contains status information inherit public voidinherit(ACNTVList Recursively inherits elements source,ACNTVTErrorerrval) from the ACNTVList represented by the source argument into thisACNTVList. Elements in this list with the same name as elements in thesource list remain unchanged. Elements from source list whose names arenot found in this list are added to this list. @param source ACNTVListto inherit from @param errval On exit, contains status informationinherit public void inherit (ACNTVL Recursively inherits elementssource) from the ACNTVList represented by the source argument into thisACNTVList. Elements in this list with the same name as elements in thesource list remain unchanged. Elements from source list whose names arenot found in this list are added to this list. @param errval On exit,contains status information contains public boolean contains Testwhether an existing (ACNTVTriplet element) ACNTVTriplet element iscontained in this ACNTVList @param element ACNTVTriplet to search for@return true element is contained in this ACNTVList, else false containspublic boolean contains (String Test whether an existing name)ACNTVTriplet element is contained in this ACNTVList @param name name ofelement to search for @return true if element is contained in thisACNTVList, else false doserialize public void Serializes this ACNTVListto a doserialize(StringBuffer result,int string. The code argumentcode,ACNTVError errval) indicates a serialization policy. Currently, itis unused and should be set to 0. @param result contains the serializedACNTVList @param code indicates serialization policy. @param errval Onexit, contains status information serialize protected void Serializesthis ACNTVList to a serialize(StringBuffer result, int string. The codeargument code, indicates a serialization policy. ACNTVError errval)Currently, it is unused and should be set to 0. This method is usedinternally and should not be called directly. @param result contains theserialized ACNTVList @param code indicates serialization policy. @paramerrval On exit, contains staus information prettyprintToDebug publicvoid prettyprintToDebug() Produces human readable form of this ACNTVListand output it to the debug output stream using ArchDebug s DEBUG_APPLmode. PrintArchDebug public void printArchDebug(int Produces humanreadable form nLevel) of this ACNTVList and output it to the ArchDebugoutput stream using the given mode doprettyprint public voiddoprettyprint Produces a human readable form (StringBuffer result,String data, of this ACNTVList and return it in int levels, int code,ACNTVError the argument result. @param errval result Contains the prettyprinted object. @param data Prefixes each line of the output. @paramcode Indicates serealization policy. Currently this parameter is unused,and should be set to 0. @param levels Indicates the depth of nestedACNTVLists to include in the output. @param errval On exit, containsstatus information doprettyprint public void Produces a human readableform doprettyprint(StringBuffer result, of this ACNTVList and return itin String data, int levels, int code) the argument result. No error codeis returned.. @param result Contains the pretty printed object, @paramdata Prefixes each line of the output. @param code Indicatesserialization policy. Currently this parameter is unused, and should beset to 0. @param levels Indicates the depth of nested ACNTVLists toinclude in the output. prettyprint protected void Produces a humanreadable form prettyprint(StringBuffer result, of this ACNTVList andreturns it String data, int levels, Int code, in the argument result.This ACNTVError errval) method should not be called directly. Call doACNTVList.doprettyprint instead. @param result Contains the prettyprinted object. @param data Prefixes each line of the output. @paramcode Indicates serialization policy. Currently this parameter is unused,and should be set to 0. @param levels Indicates the depth of nestedACNTVLists to include in the output. @param errval On exit, containsstatus information clear public void clear() Removes all elements fromthis ACNTVList. No error code is returned. clear public voidclear(ACNTVError Removes all elements from this errval) ACNTVList.@param errval On exit, contains status information getAsString publicString getAsString(string Returns from this ACNTVList a name,Stringdefval, ACNTVError String representation of argument errval) name.@param name The name of the value to get. @param defval The value toreturn if the value is not found @param errval On exit, contains statusinformation. @return The String corresponding to the name. getAsStringpublic String getAsString(String Returns from this ACNTVList a name,String defval) String representation of argument name. @param name Thename of the value to get. @param defval The value to return if the valueis not found @return The String representation of the valuecorresponding to the name. getAsString public String getAsString(StringReturns from this ACNTVList a name) String representation of argumentname. @param name The name of the value to get. @return The Stringrepresentation of the value corresponding to the name. getStr publicString getstr(String name. Returns from this ACNTVList a String defval,ACNTVError errval) String named by argument name. @param name The nameof the String to get. @param defval The value to return if the String isnot found @param errval On exit, contains status information. @returnThe String corresponding to name. getStr public String getstr(Stringname, Returns from this ACNTVList a String defval) String named byargument name. No error code is returned @param name The name of theString to get. @param defval The value to return if the String is notfound @return The String corresponding to name. getStr public StringgetStr(String name) Returns from this ACNTVList a String named byargument name. No error code is returned. @param name The name of theString to get. @return TheString corresponding to name. getDbl publicdouble getDbl(String name Returns from this ACNTVList a double defval,ACNTVError double named by argument errval) name. @param name The nameof the double to get. @param defval The value to return if the double isnot found @param errval On exit, contains status information. @returnThe double corresponding to name. getDbl public double getDbl(Stringname, Returns from this ACNTVList a double defval) double named byargument name. No error code is returned. @param name The name of thedouble to get. @param defval The value to return if the double is notfound @return The double corresponding to name. getDbl public doubiegetDbl (String Returns from this ACNTVLIst a name) double named byargument name, No error code is returned. @param name The name of thedouble to get. @return The double corresponding to name. getInt publicint getInt(String name, int Returns from this ACNTVList an defval,ACNTVError errval) int named by argument name. @param name The name ofthe int to get. @param defval The value to return if the int is notfound @param errval On exit, contains status information. @return Theint corresponding to name. getInt public int getInt(String name, intReturns from this ACNTVList an defval) int named by argument name. Noerror code is returned. @param name The name of the int to get. @paramdefval The value to return if the int is not found @return The intcorresponding to name. getInt public int getInt(String name) Returnsfrom this ACNTVList an int named by argument name. No error code isreturned. @param name The name of the int to get. @return The intcorresponding to name. getVoid public Object getVoid(String Returns fromthis ACNTVList an name, ACNTVError errval) opaque object named byargument name. These objects cannot be serialized or pretty- printed.@param name The name of the opaque object to get. @param errval On exit,contains status information. @return The opaque object corresponding toname. getVoid public Object getVoid(String Returns from this ACNTVListan name) opaque object named by argument name. These objects cannot beserialized or pretty- printed. No error code is returned. @param nameThe name of the opaque object to get. @return The opaque objectcorresponding to name. geAny public ACNTVAnyObject Returns from thisACNTVList an getAny(String name, ACNTVError ACNTVAny object named byerrval) argument name. The value returned is an object which implementsthe ACNTVAnyObject interface. @param name The name of the ACNTVAnyObjectto get. @param errval On exit, contains status information. @return TheACNTVAnyObject corresponding to name. @see ACNTVAnyObject getAny publicACNTVAnyObject Returns from this ACNTVList an getAny{String name)ACNTVAny object named by argument name. The value returned is an objectwhich implements the ACNTVAnyObject interface. No error code isreturned. @param name The name of the ACNTVAnyObject to get. @return TheACNTVAnyObject corresponding to name. @see ACNTVAnyObject getNTVListpublic ACNTVList Returns from this ACNTVList an getNTVList(String name,ACNTVList object named by ACNTVError errval) argument name. @param nameThe name of the ACNTVList to get. @param errval On exit, contains statusinformation, @return The ACNTVList corresponding to name. @seeACNTVListObject getNTVList public ACNTVList Returns fromthis ACNTVListan getNTVList(String name) ACNTVList named by argument name. @param nameThe name of the ACNTVList to get. @return The ACNTVList corresponding toname @see ACNTVList getIntArr public ACNTVIntArr Returns from thisACNTVList an getIntArr(String name, ACNTVIntArr named by ACNTVErrorerrval) argument name. @param name The name of the ACNTVIntArr to get.@param errvat On exit, contains status information. @return TheACNTVIntArr corresponding to name. @see ACNTVIntArr getIntArr publicACNTVIntArr Returns from this ACNTVList an getIntArr(String name)ACNTVIntArr named by argument name. No error code is returned. @paramname The name of the ACNTVIntArr to get. @return The ACNTVIntArrcorresponding to name. @see ACNTVIntArr getStrArr public ACNTVStrArrReturns from this ACNTVList an getStrArr(String ACNTVStrArr named byname.ACNTVError errval) argument name. @param name The name of theACNTVStrArr to get. @param. errval On exit, contains status information.@return The ACNTVStrArr corresponding to name. @see ACNTVStrArrgetStrArr public ACNTVStrArr Returns from this ACNTVList angetStrArr(String name) ACNTVStrArr named by argument name. No error codeis returned. @param name The name of the ACNTVStrArr to get. @return TheACNTVStrArr corresponding to name. @see ACNTVStrArr getDblArr publicACNTVDblArr getDblArr Returns from this ACNTVList an (String name,ACNTVError errval) ACNTVDblArr named by argument name. @param name Thename of the ACNTVDblArr to get. @param errval On exit, contains statusinformation. @return The ACNTVDblArr corresponding to name. @seeACNTVDblArr getDblArr public ACNTVDblArr Returns from this ACNTVList angetDblArr(String name) ACNTVDblArr named by argument name. No error codeis returned. @param name The name of the ACNTVDblArr to get @return TheACNTVDblArr corresponding to name. @see ACNTVDblArr ACNTVgetVoid publicACNTVVoidArr Returns from this ACNTVList an Arr ACNTVgetVoidArr (Stringname, ACNTVVoidArr named by ACNTVError errval) argument name. @paramname The name of the ACNTVVoidArr to get. @param errval On exit,contains status information. @return The ACNTVVoidArr corresponding toname. @see ACNTVVoidArr ACNTVgetVoid public ACNTVVoidArr Returns fromthis ACNTVList an Arr ACNTVgetVoidArr(String name) ACNTVVoidArr named byargument name. No error code is returned. @param name The name of theACNTVVoidArr to get. @return The ACNTVVoidArr corresponding to name.@see ACNTVVoidArr ACNTVgetAny public ACNTVAnyArr Returns from thisACNTVList an Arr ACNTVgetAnyArr(String name, ACNTVAnyArr named byACNTVError errval) argument name. @param name The name of theACNTVAnyArr to get. @param errval On exit, contains status information.@return The ACNTVAnyArr corresponding to name. @see ACNTVAnyArrACNTVgetAny public ACNTVAnyArr Returns from this ACNTVList an ArrACNTVgetAnyArr(String name) ACNTVAnyArr named by argument name. No errorcode is returned. @param name The name of the ACNTVAnyArr to get.@return The ACNTVAnyArr corresponding to name. @see ACNTVAnyArrgetNTVListArr public ACNTVListArr Returns from this ACNTVList angetNTVListArr (String name, ACNTVListArr named by ACNTVError errval)argument name. @param name The name of the ACNTVListArr to get. @paramerrval On exit, contains status information. @return The ACNTVListArrcorresponding to name. @see ACNTVListArr getNTVListArr publicACNTVListArr Returns from this ACNTVList an getNTVListArr(String name)ACNTVListArr named by argument name. No error code is returned. @paramname The name of the ACNTVListArr to get. @return The ACNTVListArrcorresponding to name. @see ACNTVListArr get protected ACNTVTripletReturns from this ACNTVList an get(String name, ACNTVError ACNTVTripletnamed by errval) argument name. For internal use only, Dont calldirectly. @param name The name of the ACNTVTriplet to get. @param errvalOn exit, contains Status information. @return The ACNTVTripletcorresponding to name. @see ACNTVTriplet get protected ACNTVTripletReturns from this ACNTVList an get(String name) ACNTVTriplet named byargument name. For internal use only. Don t call directly. No error codeis returned. @param name The name of the ACNTVTriplet to get. @returnThe ACNTVTriplet corresponding to name. @see ACNTVTriplet getTripletpublic ACNTVTriplet Returns from this ACNTVList an getTriplet(Stringname, ACNTVTriplet named by ACNTVError errval) argument name. Dottednames are supported. For example, getTriplet( a.b.c.d , errval) willreturn the ACNTVTriplet named d from the nested ACNTVList a.b.c, inwhich a contains b contains c. @param name The name of the ACNTVTripletto get. @param errval On exit, contains status information. @return TheACNTVTriplet corresponding to name. @see ACNTVTriplet getTriplet publicACNTVTriplet Returns from this ACNTVList an getTriplet(String name)ACNTVTriplet named by argument name. Dotted names are supported. Forexample, getTriplet( a.b.c.d , errval) will return the ACNTVTripletnamed d from the nested ACNTVLists a, b, and c. No error code isreturned. @param name The name of the ACNTVTriplet to get. @return TheACNTVTriplet corresponding to name. @see ACNTVTriplet remStr publicString remStr(String name, Removes and returns from this String defval,ACNTVError errval) ACNTVList a String named by argument name. @paramname The name of the String to remove. @param defval The value to returnif the String is not found @param errval On exit. contains Statusinformation. @return The String which was removed @see remStr publicString remStr(String name, Removes and returns from this String defval)ACNTVList a String named by argument name. No error code is returned.@param name The name of the String to remove. @param defval The value toreturn if the String is not found @return The String which was removedremStr public String remStr(String name) Removes and returns from thisACNTVList a String named by argument name. No error code is returned.@param name The name of the String to remove. @return The String whichwas removed remDbl public double remDbl(String Removes and returns fromthis name, double defval, ACNTVError ACNTVList a double named by errval)argument name. @param name The name of the double to remove. @paramdefval The value to return if the double is not found @param errval Onexit, contains Status information. @return The double int which wasremoved remDbl public double remDbl(String Removes and returns from thisname, double defval) ACNTVList a double int named by argument name. Noerror code is returned. @param name The name of the double to remove.@param defval The value to return if the double is not found @return Thedouble int which was removed remDbl public double remDbl(String ves andreturns from this name) ACNTVList a double int named by argument name.No error code is returned. @param name The name of the double to remove.@return The double int which was removed remInt public int remInt(Stringname, int Removes and returns from this defval, ACNTVError errval)ACNTVList an int named by argument name. @param name The name of the intto remove. @param defval The value to return if the int is not found@param errvall On exit, contains status information. @return The intwhich was removed remInt public int remInt(String name, int Removes andreturns from this defval) ACNTVList an int named by argument name. Noerror code is retured. @param name The name of the int to remove. @paramdefval The value to return if the int is not found @return The int whichwas removed remInt public int remInt(String name) Removes and returnsfrom this ACNTVList an int named by argument name. No error code isrequired, @param name The name of the int to remove, @return The intwhich was removed rem Void public Object remVoid(String Removes andreturns from this name, ACNTVError errval) ACNTVList an opaque Objectnamed by argument name, @param name The name of the opaque Object toremove @param errval On exit, contains status information. @return Theopaque Object which was removed remVoid public Object remVoid(StringRemoves and returns from this name) ACNTVList an opaque Object named byargument name. No error code is returned. @param name The name of theopaque Object to remove. @return The opaque Object which was removedremAny public ACNTVAnyObject Removes and returns from this remAny(Stringname, ACNTVList an ACNTVAnyObject ACNTVError errval) named by argumentname @param name The name of the ACNTVAnyObject to remove. @param errvalOn exit, Contains status information @return The ACNTVAnyObject whichwas removed remAny public ACNTVAnyObject Removes and returns from thisremAny(String name) ACNTVList an ACNTVAnyObject named by argument name.No error code is returned. @param name The name of the ACNTVAnyobject toremove. @return The ACNTVAnyObject which was removed remNTVList publicACNTVList. Removes and returns from this remNTVList(String name,ACNTVList an ACNTVList named ACNTVError errval) by argument name. @paramname The name of the ACNTVList to remove. @param errval On exit,contains Status information. @return The ACNTVList which was removedremNTVList public ACNTVList Removes and returns from thisremNTVList(String name) ACNTVList an ACNTVList named by argument name.No error code is returned. @param name The name of the ACNTVList toremove. @return The ACNTVList which was removed remIntArr publicACNTVIntArr Removes and returns from this remIntArr(String name,ACNTVList an ACNTVIntArr ACNTVError errval) named by argument name.@param name The name of the ACNTVIntArr to remove. @param errval Onexit, contains status information. @return The ACNTVIntArr which wasremoved remIntArr public ACNTVInArr remIntArr Removes and returns fromthis (String name) ACNTVList an ACNTVIntArr named by argument name. Noerror code is returned. @param name The name of the ACNTVIntArr toremove. @return The ACNTVIntArr which was removed remStrArr publicACNTVStrArr Removes and returns from this remstrArr(String name,ACNTVList an ACNTVStrArr ACNTVError errval) named by argument name.@param name The name of the ACNTVStrArr to remove. param errval On exit,contains status information. @return The ACNTVStrArr which was removed.remstrArr public ACNTVStrArr Removes and returns from thisremstrArr(String name) ACNTVList an ACNTVStrArr named by argument name.No error code is returned. @param name The name of the ACNTVStrArr toremove. @return The ACNTVStrArr which was removed remDblArr publicACNTVDblArr Removes and returns from this remDblArr(String name,ACNTVList an ACNTVDblArr ACNTVError errval) named by argument name.@param name The name of the ACNTVDblArr to remove. @param errval Onexit, contains status information. @return The ACNTVDblArr which wasremoved remDblArr public ACNTVDblArr Removes and returns from thisremDblArr(String name) ACNTVList an ACNTVDblArr named by argument name.No error code is returned. @param name The name of the ACNTVDblArr toremove. @return The ACNTVDblArr which was removed rem VoidArr publicACNTVVoidArr Removes and returns from this remVoidArr(String name,ACNTVList an ACNTVVoidArr ACNTVError errval) named by argument name.@param name The name of the ACNTVVoidArr to remove. @param errval Onexit, contains status information. @return The ACNTVVoidArr which wasremoved rem VoidArr public ACNTVVoidArr Removes and returns from thisremVoidArr(String name) ACNTVList an ACNTVVoidArr named by argumentname. No error code is returned. @param name The name of theACNTVVoidArr to remove. @return The ACNTVVoidArr which was removedremAnyArr public ACNTVAnyArr remAnyArr Removes and returns from this(String name, ACNTVError errval) ACNTVList an ACNTVAnyArr named byargument name. ¤param name The name of the ACNTVAnyArr to remove, @paramerrval On exit, contains status information. @return The ACNTVAnyArrwhich was removed remAnyArr public ACNTVAnyArr Removes and returns fromthis remAnyArr(String name) ACNTVList an ACNTVAnyArr named by argumentname. No error code is returned. @param name The name of the ACNTVAnyArrto remove. @return The ACNTVAnyArr which was removed remNTVListArrpublic ACNTVListArr Removes and returns from this remNTVListArr(Stringname, ACNTVList an ACNTVListArr ACNTVError errval) named by argumentname. @param name The name of the ACNTVListArr to remove. @param errvalOn exit, contains status information. @return The ACNTVListArr which wasremoved remNTVListArr public ACNTVListArr Removes and returns from thisremNTVListArr(String name) ACNTVList an ACNTVListArr named by argumentname. No error code is returned. @param name The name of theACNTVListArr to remove. @return The ACNTVListArr which was removedremTriplet public ACNTVTriplet Removes and returns from thisremTriplet(String name, ACNTVList an ACNTVTriplet ACNTVError errval)named by argument name. Dotted names are supported. For example.getTriplet( a.b.c.d, errval) will return the ACNTVTriplet named d fromthe nested ACNTVLists a , b, and c. @param name The name of theACNTVTriplet to remove. @param errval On exit, contains statusinformation. @return The ACNTVTriplet which was removed @seeACNTVTriplet remTriplet public ACNTVTriplet Removes and returns fromthis remTriplet(String name) ACNTVList an ACNTVTriplet named by argumentname. Dotted names are supported. For example, getTriplet( a.b.c.d,errval) will return the ACNTriplet named d from the nested ACNTVLists a,b, and c. No error code is returne Triplet. @param name The name of theACNTVTriplet to remove. @return The ACNTVTriplet which was removed @seeACNTVTriplet remove public ACNTVTriplet Removes returns from thisremove(String name, ACNTVList an ACNTVTriplet ACNTVError errval) namedby argument name. For internal use only, Don t caIl directly. @paramname The name of the ACNTVTriplet to remove. @param errval On exit,contains status information. @return The ACNTVTriplet which was removed.@see ACNTVTriplet remove public ACNTVTriplet Removes returns from thisremove(String name) ACNTVList an ACNTVTriplet named by argument name.For internal use only, Don t call directly. No error code is returned.@param name The name of the ACNTVTriplet to remove. @return TheACNTVTriplet which was removed. @see ACNTVTriplet setTriplet public voidPlaces an ACNTVTriplet named setTriplet(ACNTVTriplet element, byargument name into this ACNTVError errval) ACNTVList. Dotted names aresupported. For example, setTriplet( a.b.c, element, errval) will placethe element in the nested ACNTVList a.b.c, in which a contains bcontains c. The value of a pre-existing element with the same name aselement will be replaced. @param element The ACNTVTriplet to set. @paramerrval On exit, contains status information. @see ACNTVTripletsetTriplet public void Places an ACNTVTriplet namedsetTriplet(ACNIVTriplet element) by argument name into this ACNTVList.Dotted names are supported. For example, setTriplet( a.b.c, element,errval) will place the element in the nested ACNTVList a.b.c, in which acontains b contains c. The value of a pre-existing element with the samename as element will be replaced. No error code is returned, @paramelement The ACNTVTriplet to set. @see ACNTVTriplet setTriplet publicvoid SetTriplet(String Searches for an element named name, ACNTVTripletelement, argument name in this ACNTVError errval) ACNTVList. If found,replaces the value with element s value, otherwise, a new ACNTVList iscreated, element is placed on the new ACNTVList, and the new ACNTVListis placed on this ACNTVList. @param name Name of the ACNTVTriplet tofind @param element The ACNTVTriplet to set. @param errval On exit,contains status information. @see ACNTVTriplet setTriplet public voidsetTriplet(String name, Searches for an element named ACNTVTripletelement) argument name in this ACNTVList. If found, replaces the valuewith element s value, otherwise, a new ACNTVList is created, element isplaced on the new ACNTVList, and the new ACNTVList is placed on thisACNTVList. No error code returned. @param name. Name of the ACNTVTripletto find @param element The ACNTVTriplet to set. @See ACNTVTripletgetLastName protected String getLastName For internal use. Used to findthe (String name, ACNTVError errval) last name in a list of possible ofdotted names. setNextToLast protected ACNTVList For internal use. Usedon dotted setNextToLast(String name, names to find the list containingACNTVError errval) the last segment of the dotted name. @param. nameDotted name to search for in this ACNTVList @param tastname StringBuffercontaining the last segment of of the dotted name. @return The parentACNTVList of the last segment of the dotted name. @see set protectedvoid set(ACNTVTriplet Places element into this element, ACNTVErrorerrval) ACNTVList. For internal use only. Do not call directly. @paramelement The ACNTVTriplet to pface. @param errval On exit, containsstatus information. set protected void set (ACNTVTriplet Places elementinto this element) ACNTVList. For internal use only. Do not calldirectly. No error code is returned. @param element The ACNTVTriplet toplace on this ACNTVList. copyElement public void copyElement (StringCopies the element named szName, ACNTVList src) szName from src andinserts into this using szName as name copyElement public voidcopyElement(String Copies the element named szName, ACNTVList src,szName from src and inserts into ACNTVError errval) this using szName asname copyElement public void copyElement (String Copies the elementnamed szName, ACNTVList, String szSrcName from src and insertsszScrName) into this using szName as name copyElement public voidcopyElement(String Copies the element named szName, ACNTVList src,String szSrcName from src and inserts szSrcName, ACNTVError errval) intothis using szName as name setStr public Void setStr (9String name,Creates a new String element String value, ACNTVError errval) from nameand value, and places it on this ACNTVList. @param name The name of thenew String element @param value The value of the new String element@param errval On exit, contains status information. setStr public voidsetStr(String name, Creates a new String element String value) from nameand value, and places it on this ACNTVList. No error code is returned.@param name The name of the new String element @param value The value ofthe new String element setDbl public void setDbl (String name, Creates anew double element double value, ACNTVError errval) from name and value,and places it on this ACNTVList. @param name The name of the new doubleelement @param value The value of the new double etement @param errvalOn exit, contains status information. setDbl public void setDbl(Stringname, Creates a new double element double value) from name and value,and places it on this ACNTVList. No error code is returned. @param nameThe name of the new double element @param value The value of the newdouble element setInt public void setInt (Stringname. int Creates a newint element from value, ACNTVError errval) name and value, and places iton this ACNTVList @param name The name of the new int element @paramvalue The value of the new int element @param errval On exit, containsstatus information. setInt public void setInt (String name, int Createsa new int element from value) name and value, and places it on thisACNTVList. No error code is returned. @param name The name of the newint element @param value The value of the new int element setVoid publicvoid setVoid(String name, Creates a new opaque Object Object values,ACNTVError element from name and value, errval) and places it on thisACNTVList. @param name The name of the new opaque Object element @paramvalue The value of the new opaque Object element at @param errval Onexit, contains status information. set Void public void setVoid(Stringname, Creates a new opaque Object Object value) element from name andvalue, and places it on this ACNTVList. No error code is returned @paramname The name of the new opaque Object element @param value The value ofthe new opaque Qbject element setAny public Void setAny(String named,Creates a new ACNTVAny ACNTVAnyObject pValue,. element from name andvalue, ACNTVError errval) and places it on this ACNTVList. @param nameThe name of the new ACNTVAny element @param yalue The value of the newACNTVAny element @param errval On exit, contains Status information.setAny public void setAny(String name, Creates a new ACNTVAnyACNTVAnyObject value) element from name and value, and places it on thisACNTVList. No error code is returned. @param name The name of the newACNTVAny element @param value The value of the new ACNTVAny elementsetNTVListRef public void setNTVListRef(String Inserts the given newACNTVList name, ACNTVList value, and inserts it into this ACNTVListACNTVError errval) with the given name - no copy is made (as opposed tosetNTVList() @param name The name of the new ACNTVList element @paramvalue The value of the new ACNTVList element @param errval On exit,contains status information. setNTVListRef public void setNTVListRef(String Inserts the given new ACNTVList name, ACNTVList value) andinserts it into this ACNTVList with the given name - no copy is made (asopposed to setNTVList(). No error code is returned. @param name The nameof the new ACNTVList element @param value The value of the new ACNTVListelement setNTVList public void setNTVList (String Creates a newACNTVList name, ACNTVList value, element from name and value, ACNTVErrorerrval) and places it on this ACNTVList. @param. name The name of thenew ACNTVList element @param value The value of the new ACNTVListelement @param errval On exit, contains status information. setNTVListpublic void setNTVList(String Creates a new ACNTVList name, ACNTVListvalue) element from name and value, and place it on this ACNTVList. Noerror code is returned @param name The name of the new ACNTVList element@param value The value of the new ACNTVList element setIntArr publicvoid setIntArr (String name, Creates a new ACNTVIntArr int array[], intlength, element from name and value, ACNTVError errval) and places it onthis ACNTVList. @param name The name of the new ACNTVIntArr element@param value The int array used to construct the new ACNTVIntArr element@param errval On exit, contains status information. setIntArr publicvoid setIntArr(String name, Creates a new ACNTVIntArr int array[], intlength) element from name and value, and places it on this ACNTVList. Noerror code is returned. @param name The name of the new ACNTV IntArrelement @param value The int array used to construct the new ACNTVIntArrelement setIntArr public void setIntArr(String Creates a new ACNTVIntArrname,ACNTVIntArr element from name and value, array,ACNTVError errval)and places it on this ACNTVList. @param name The name of the newACNTVIntArr element @param value The value of the new ACNTVIntArrelement @param errval On exit,contains status information. setIntArrpublic void setIntArr(String name, Creates a new ACNTVIntArr ACNTVIntArrarray) element from name and value, and places it on this ACNTVList.@param name The name of the new ACNTVIntArr element @param value Thevalue of the new ACNTVIntArr element @param errval On exit, containsstatus information. setStrArr public void setStrArr(String Creates a newACNTVStrArr name,String array[], int length, element from name andvalue, ACNTVError errval) and places it on this ACNTVList. @param nameThe name of the new ACNTVStrArr element @param value The String arrayused to construct the new ACNTVStrArr element @param errval On exit,contains status information. setStrArr public void setStrArr(StringCreates a new ACNTVStrArr name,String array[] int length) element fromname and value, and places it on this ACNTVList. No error code isreturned. @param name The name of the new ACNTVStrArr element @paramvalue The String array used to construct the new ACNTVStrArr elementsetStrArr public Void setStrArr(String name, Creates a new ACNTVStrArrACNTVStrArr array, ACNTVError element from name and value, errval) andplaces it on this ACNTVList. @param name The name of the new ACNTVStrArrelement @param value The value of the new ACNTVStrArr element @paramerrval On exit, contains status information. setStrArr public voidsetStrArr(String name, Creates a new ACNTVStrArr ACNTVStrArr array)element from name and value, and places it on this ACNTVList. No errorcode is returned. @param name The name of the new ACNTVStrArr element@param value The value of the new ACNTVStrArr element setDblArr publicvoidsetDblArr(String Creates a new ACNTVDblArr name,double array[], intlength, element from name and value, ACNTVError errval) and places it onthis ACNTVList. @param name The name of the new ACNTVDblArr element@param value The double array used to construct the new ACNTVDblArrelement @param errval On exit, contains status information. setDblArrpublic void setDblArr(String name, Creates a new ACNTVDblArr doublearray[], int length) element from name and value, and places it on thisACNTVList. No error value is returned. @param name The name of the newACNTVDblArr element @param value The double array used to construct thenew ACNTVDblArr element setDblArr public void setDblArr(String name,Creates a new ACNTVDblArr ACNTVTDblArr array, element from name andvalue, ACNTVError errval) and places it on this ACNTVList. @param nameThe name of the new ACNTVDblArr element @param value The value of thenew ACNTVDblArr element @param errval On exit, contains statusinformation. setDblArr public void setDblArr(String name, Creates a newACNTVDblArr ACNTVDblArr array) element from name and value, and placesit on this ACNTVList. No error value is returned. @param name The nameof the new ACNTVDblArr element @param value The value of the newACNTVDblArr element setAnyArr public void setAnyArr(String Creates a newACNTVAnyArr name, ACNTVAnyobject array [ element from name and value, ],int length, ACNTVError errval) and places it on this ACNTVList. @paramname The name of the new ACNTVAnyArr element @param value TheACNTVAnyObject array used to construct the new ACNTVAnyArr element@param errval On exit, contains status information. setAnyArr publicvoid setAnyArr(String Creates a new ACNTVAnyArr name, ACNTVAnyObjectarray [], element from name and value, int length) and places it on thisACNTVList. No error code is returned. @param name The name of the newACNTVAnyArr element @param value The ACNTVAnyObject array used toconstruct the newACNTVAnyArr element setAnyArr public voidsetAnyArr(String Creates a new ACNTVAnyArr name, ACNTVAnyArr array [],element from name and value, ACNTVError errval) and places it on thisACNTVList. @param name The name of the new ACNTVAnyArr element @paramvalue The value of the new ACNTVAnyArr element @param errval On exit,contains status information. setAnyArr public void setAnyArr(StringCreates a new ACNTVAnyArr name, ACNTVAnyArr array) element from name andvalue, and places it on this ACNTVList. No error code is returned.@param name The name of the new ACNTVAnyArr element @param value Thevalue of the new ACNTVAnyArr element setNTVListArr public voidsetNTVListArr (String Adds an empty NTVList array to name) the list withthe given name @param name The name of the new ACNTVListArr elementsetNTVListArr public void setNTVListArr(String Adds an empty NTVListarray to name, ACNTVError errval) the list with the given name @paramname The name of the new ACNTVListArr element @param errval On exit,contains status information. setNTVListArr public voidsetNTVListArr(String Creates a new ACNTVListArr name, ACNTVList array[]int element from name and value, length, ACNTVError errval) and placesit on this ACNTVList @param name The name of the new ACNTVListArrelement @param value The ACNTVList array used to construct thenewACNTVListArr element @param errval On exit, contains statusinformation. setNTVListArr public void setNTVListArr(String Creates anew ACNTVListArr name, ACNTVList array[], int element from name andvalue, length) and places it on this ACNTVList. No error code isreturned. @param name The name of the new ACNTVListArr element @paramvalue The ACNTVList array used to construct the newACNTVListArr elementsetNTVListArr public void setNTVListArr(String Creates a newACNTVListArr name, ACNTVListArr array, element from name and value,ACNTVError errval) and places it on this ACNTVList. @param name The nameof the new ACNTVListArr element @param value The value of the newACNTVListArr element @param errval On exit, contains status information.setNTVListArr public void NTVListArr(String Creates a new ACNTVListArrname, ACNTVListArr array) element from name and value, and places it onthis ACNTVList. No error code is returned. @param name The name of thenew ACNTVListArr element @param value The value of the new ACNTVListArrelement merge public void merge (ACNTVList ntvMerge, ACNTVError errval)merge public void merge(ACNTVList ntvMerge) castToNTVList publicACNTVList Safe downcast from castToNTVList() ACNTVTriplet to ACNTVList@return ACNTVList, or null if this is not an ACNTVList

Although the invention is described herein with reference to thepreferred embodiment, one skilled in the art will readily appreciatethat other applications may be substituted for those set forth hereinwithout departing from the spirit and scope of the present invention.Accordingly, the invention should only be limited by the Claims includedbelow.

What is claimed is:
 1. A method for storing data for use in applicationswhich reside within an electronic network, comprising the steps of:providing a storage triplet comprising a storage element for the name ofa variable; a storage element for a type indicator; and a storageelement for value storage; storing a variable name in said name storageelement; storing a type indicator in said type indicator storageelement; storing a value in said value storage element in said tripletin accordance with the type indicator stored in the type indicatorstorage element of said triplet; wherein said value storing step storessaid value in the resident platform's machine-dependent representation;and wherein data may be represented on dissimilar platforms by storingsaid triplet in a self describing format.
 2. The method of claim 1,wherein said type indicator can be any of the following: integer, afloating point number, a string, an array, or an another said triplet.3. The method of claim 1, wherein said value is stored according to aninternal storage format of a resident platform.
 4. The method of claim1, further comprising the step of: storing characters in a value portionof said triplet.
 5. The method of claim 1, wherein said triplet value isserialized into a string which may be transmitted from a residentplatform and reconstituted at a remote platform in the same format andthe same structure as at said resident platform.
 6. The method of claim1, wherein one or more of said triplets can be embedded within othersaid triplets.
 7. The method of claim 1, further comprising the step of:providing at least one triplet set function for setting a value into atriplet list.
 8. The method of claim 7, wherein said set function hasthe following format: ACNTVList::set<TypeSpecifier>(String<name>,NativeType<value>[, ACNTVError<error object>]);.
 9. The method of claim7, wherein parameters to said set function comprise a name with whichsaid set value is associated, a value to insert as a correct nativetype, and an optional error object that may be populated with a returncondition code.
 10. The method of claim 1, further comprising the stepsof: providing a triplet list hierarchy; and using dot notation tospecify a name that is one or more levels into said triplet listhierarchy.
 11. The method of claim 1, further comprising the step of:inserting date/time values into said triplet using a native date/timerepresentation.
 12. The method of claim 1, further comprising the stepof: inserting date/time values into said triplet in a native formatusing a string and a corresponding format that describes said value. 13.The method of claim 1, further comprising the step of: inserting Booleanoperators into said triplet in a native format.
 14. The method of claim1, further comprising the step of: getting a value from said tripletusing a get function having parameters that include a name associatedwith a desired value, an optional default value in a native format, andan optional error object that is populated with a return condition code,if appropriate.
 15. The method of claim 1, further comprising the stepof: converting a value to a string before said value is returned. 16.The method of claim 1, further comprising the step of: providing acorresponding array type for each base type, wherein said array typecomprises objects which handle memory management.
 17. The method ofclaim 1, further comprising the step of: providing at least one iteratorclass having a single constructor that takes as a parameter a pointer toa triplet list.
 18. The method of claim 17, further comprising the stepof: stepping through said triplet list after constructing an iterator toreturn the name of the item in said triplet list.
 19. The method ofclaim 17, further comprising the steps of: determining the type ofelement by calling a get type method; and comparing a result obtained toa constant to operate on data in said triplet list.
 20. The method ofclaim 19, further comprising the steps of: getting element data afterdetermining said type by retrieving said data using get methods.
 21. Themethod of claim 1, further comprising the step of: providing a methodthat returns a triplet used internally to store data.
 22. The method ofclaim 1, further comprising the step of: providing an iteratorclass-that supports a reset method which restores the state an iteratorto that which said iterator had immediately after construction.
 23. Anapparatus for storing data for use in applications which reside withinan electronic network, comprising: a memory; and a plurality of storagetriplets stored within said memory each comprising a storage element forthe name of a variable; a storage element for a type indicator; and astorage element for value storage; a variable storage unit that receivesa variable name, a variable type indicator and a value and stores saidvariable name, type indicator and value in the corresponding storageelements in one of said triplets; wherein said value is stored in saidvalue storage element in said triplet in accordance with the typeindicator received; wherein said value storing step stores said value inthe resident platform's machine-dependent representation; and whereindata may be represented on dissimilar platforms by storing said tripletsin a self describing format.
 24. The apparatus of claim 23, wherein saidtype indicator can be any of the following: an integer, a floating pointnumber, a string, an array, or an another said triplet.
 25. Theapparatus of claim 23, wherein said value is stored accordance to aninternal storage format of a resident platform.
 26. The apparatus ofclaim 23, wherein characters are stored in a value portion of saidtriplet.
 27. The apparatus of claim 23, wherein said triplet value isserialized into a string which may be transmitted from a residentplatform and reconstituted at a remote platform in the same format andthe same structure as at said resident platform.
 28. The apparatus ofclaim 23, wherein one or more of said triplets can be embedded withinother said triplets.
 29. The apparatus of claim 23, further comprising:at least one triplet set function for setting a value into a tripletlist.
 30. The apparatus of claim 29, wherein said set function has thefollowing format: ACNTVList::set<TypeSpecifier>(String<name>,NativeType<value>[, ACNTVError<error object>]);.
 31. The apparatus ofclaim 29, wherein parameters to said set function comprise a name withwhich said set value is associated, a value to insert as a correctnative type, and an optional error object that may be populated with areturn condition code.
 32. The apparatus of claim 23, furthercomprising: a triplet list hierarchy; and dot notation for specifying aname that is one or more levels into said triplet list hierarchy. 33.The apparatus of claim 23, further comprising: means for insertingdate/time values into said triplet using a native date/timerepresentation.
 34. The apparatus of claim 23, further comprising: meansfor inserting date/time values into said triplet in a native formatusing a string and a corresponding format that describes said value. 35.The apparatus of claim 23, wherein Boolean operators are inserted intosaid triplet in a native format.
 36. The apparatus of claim 23, furthercomprising the step of: means for getting a value from said tripletusing a get function having parameters that include a name associatedwith a desired value, an optional default value in a native format, andan optional error object that is populated with a return condition code,if appropriate.
 37. The apparatus of claim 23, wherein a value isconverted to a string before said value is returned.
 38. The apparatusof claim 23, further comprising the step of: a corresponding array typefor each base type, wherein said array type comprises objects whichhandle memory management.
 39. The apparatus of claim 23, furthercomprising: at least one iterator class having a single constructor thattakes as a parameter a pointer to a triplet list.
 40. The apparatus ofclaim 39, further comprising: means for stepping through said tripletlist after constructing an iterator to return the name of the item insaid triplet list.
 41. The apparatus of claim 39, further comprising:means for determining the type of element by calling a get type method;and means for comparing a result obtained to a constant to operate ondata in said triplet list.
 42. The apparatus of claim 41, furthercomprising the steps of: getting element data after determining saidtype by retrieving said data using get methods.
 43. The apparatus ofclaim 23, further comprising: a method that returns a triplet usedinternally to store data.
 44. The apparatus of claim 23, furthercomprising: an iterator class that supports a reset method whichrestores the state an iterator to that which said iterator hadimmediately after construction.